Method and system for processing antenna feeds using separate processing pipelines

ABSTRACT

A method and system for capturing, storing, and streaming over the air broadcasts based on user requests is disclosed. The system and method utilize subarrays of antenna elements for receiving over the air broadcasts. Processing pipelines are used to demodulate, transcode and index the content transmissions to produce content data that are streamed to users. In this way, the feeds from antennas can be accessed by users over a network connection.

RELATED APPLICATIONS

This application claims the benefit under 35 USC 119(e) of U.S. Provisional Application No. 61/415,012, filed on Nov. 18, 2010, U.S. Provisional Application No. 61/422,950, filed on Dec. 14, 2010, and U.S. Provisional Application No. 61/533,946, filed on Sep. 13, 2011, all of which are incorporated herein by reference in their entirety.

This application is related to U.S. application Ser. No. 13/299,186 filed on Nov. 17, 2011, now U.S. Patent Publication No. 2012/0127374 A1, U.S. application Ser. No. 13/299,191 filed on Nov. 17, 2011, now U.S. Patent Publication No. 2012/0131621 A1, and U.S. application Ser. No. 13/299,194 filed on Nov. 17, 2011, now U.S. Patent Publication No. 2012/0127363 A1, all of which are incorporated herein by reference in their entirety.

BACKGROUND OF THE INVENTION

Over the air television, which is also referred to as terrestrial television or broadcast television, is a distribution mode for television content via radio frequency (RF) electromagnetic waves or radiation through the atmosphere. Some examples of well known television networks in the United States that broadcast over the air content are ABC, CBS, FOX, NBC, and PBS. Through a series of affiliate stations, these networks are able to blanket the country with broadcasted content. The result is that each one of these television networks is able to reach over 95% of all the households in the United States.

Television networks are always looking for ways to attract new customers and increase viewership. Recently, some television networks have been putting their programming online for people to access via private and public data networks such as the Internet. Typically, the television networks will upload content to their website or some other third party website, such as HULU.COM, that stream the content to users, sometimes for a fee. Today, the content that is available is often limited; sometimes, the most recent episodes are not available or the content is outdated.

At the same time, a wide variety of devices are available that can play audio and video content. In addition to the ubiquitous television, many now watch video on their personal computers and mobile computing devices, such as smartphones and tablet computers. Video content is usually accessed through the Internet using subscriber data networks, cellular phone networks, and public and private wireless data networks. Moreover, some televisions now have network connections. And, many game consoles have the ability to access video content using third-party software such as provided by Netflix, Inc.

SUMMARY OF THE INVENTION

Despite all of the new modalities for viewing video, over the air content broadcast by the traditional television networks is still generally only available through cable television subscriptions, satellite television systems, or by capturing the over the air broadcasts with a home-installed antenna. For users that do not subscribe to cable or do not have cable access, it is generally required that they install their own RF or satellite antenna in order to capture this broadcast content. Then, this captured content is generally only available for display on a traditional television. There is generally no simple way for a user to have this content available to their other video-capable devices.

The present system and method concern an approach to enabling users to separately access individual antenna feeds over a network connection, such as the Internet and/or service provider network. Each user is assigned an antenna, such as their own, separate, individual antenna, from which they can then record and/or stream content transmissions from over the air broadcasts. That assignment may happen either as the user initiates a recording or a user may be exclusively assigned a specific antenna for their sole use for any and all of their viewing and recordings. As users select content transmissions, individual antennas receive the broadcast content. At the users' election, the system stores the content data to each of the users' individual accounts separately for later playback by that user and/or streams the content data to the separate users. In this way, the users can access broadcast content without having to maintain their own antenna infrastructure and access broadcast content on devices, such as mobile device, that lack the tuners and decoders necessary to directly access over the air broadcasts.

The antenna assignment is either permanent or temporary depending on the mode of operation. In one mode, when users select to receive over the air content or record over the air content for later viewing, corresponding antenna elements and encoding resources are allocated to the users on the fly. Then, after the antenna elements are no longer needed, the resources are returned to the resource pool and become available for other users. In the other mode, users lease or buy particular antenna elements, which are then exclusively assigned to particular users and then used to service the requests of those users. In one example, the antenna elements are leased to users for the duration of those users' accounts.

Especially, in the mode where antennas are leased or dedicated to particular users, it is desirable to minimize the amount of resources that go unused with particular users are not accessing the system. The present system allows for the pooling of encoding and even tuning resources so that they can be assigned between the antenna elements.

In general, according to one aspect, the invention features a system for processing antenna feeds. The system including antenna elements for receiving over the air broadcasts of content, antenna processing pipelines, each of the pipelines for demodulating the antenna feeds from the antenna elements to produce content data for the over the air broadcasts of content received by the antenna elements. The system further including a switching system for selectively connecting each of the antenna elements to one of the antenna processing pipelines, and an antenna controller that controls the switching system to enable generation of the content data to fulfill user requests for the content.

In general, according to another aspect, the invention features a method for processing antenna feeds. The method including receiving over the air broadcasts of content with antenna elements, providing antenna processing pipelines for demodulating the antenna feeds from the antenna elements to produce content data for the over the air broadcasts of content received by the antenna elements, and connecting each of the antenna elements to one of the antenna processing pipelines with a switching system.

In general, according to another aspect, the invention features a method for assigning a processing pipeline to an antenna element. The method including dedicating an antenna element to a user, the antenna element for receiving over the air broadcasts of content, searching for an available processing pipeline to demodulate the over the air broadcasts of content in response to a user request for content. The method further including upon locating a processing pipeline, assigning the processing pipeline to the user's dedicated antenna element to connect the processing pipeline to the user's permanently assigned antenna element.

In general, according to another aspect, the invention features a printed circuit board for receiving over the air broadcasts. The printed circuit board including antenna elements for receiving over the air broadcasts, radio frequency tuners for the antenna elements, the radio frequency tuners individually tuning the antenna elements to separately receive the over the air broadcasts, demodulators that receive the separate copies of the over the air broadcasts from the radio frequency tuners and encode the over the air broadcasts into content data, and a selector switch for connecting feeds from the antenna elements to different demodulators.

In general, according to another aspect, the invention features a system for streaming content transmissions to user devices. The system including an application server presenting users with a list of available content transmissions, wherein the application server receives requests from the user devices to receive selected content transmissions among the available content transmissions. The system further including antenna elements that are dedicated to detect the content transmissions of individual users, and a streaming server that streams the selected content transmissions as content data to the user devices.

The above and other features of the invention including various novel details of construction and combinations of parts, and other advantages, will now be more particularly described with reference to the accompanying drawings and pointed out in the claims. It will be understood that the particular method and device embodying the invention are shown by way of illustration and not as a limitation of the invention. The principles and features of this invention may be employed in various and numerous embodiments without departing from the scope of the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

In the accompanying drawings, reference characters refer to the same parts throughout the different views. The drawings are not necessarily to scale; emphasis has instead been placed upon illustrating the principles of the invention. Of the drawings:

FIG. 1 is a block diagram illustrating a system for the capture and distribution of terrestrial television content.

FIG. 2 is a schematic diagram showing different antennas subarrays optimized to capture broadcasts from different broadcasting entities.

FIG. 3 is a schematic perspective diagram of the card cage structure that functions as a housing for two dimensional antenna arrays on printed circuit boards (PCBs) such that the boards are supported adjacent to each other to create a three dimensional array.

FIG. 4 is a schematic diagram illustrating a two dimensional array of antennas on a printed circuit board.

FIG. 5 is a side view of the PCB board that shows the symmetry of balanced loop antennas and balanced transmission lines on the PCB.

FIG. 6A is the cross-section view of section A-A from FIG. 5.

FIG. 6B is the cross section view of section B-B from FIG. 5.

FIG. 7 is flow diagram illustrating the steps for a user to view live streaming content, set up a future recording, or view previously-recorded content.

FIG. 8 is flow diagram illustrating the steps for a user to watch their previously recorded content from the playback server.

FIG. 9 is a flow diagram illustrating the steps for a user to schedule a future recording of an over the air broadcast.

FIG. 10 is a flow diagram illustrating the steps for a user to watch over the air content on a device in real-time.

FIG. 11 illustrates the database architecture for storing broadcast content data in the broadcast file store.

FIG. 12 is schematic block diagram showing an embodiment of the system for the capture and distribution of television content that utilizes pooled receiver resources.

FIG. 13 is a flow diagram illustrating how the application web server and antenna optimize and control search for resources located on other printed circuit boards.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

FIG. 1 shows a system 100 that enables individual users to receive terrestrial television content from antennas via a packet network such as the Internet, which has been constructed according to the principles of the present invention. The system allows each user to separately access the feed from an individually-assigned antenna for recording or live streaming.

In a typical implementation, users access the system 100 via the Internet 127 with client devices 128, 130, 132, 134. In one example, the client device is a personal computer 134 that accesses the system 100 via a browser. The video content is displayed on the personal computer using HTML-5 or a program such as QuickTime by Apple Corporation. In other examples, the system 100 is accessed by mobile devices such as a tablet, e.g., iPad, mobile computing device, mobile phone, e.g., iPhone, computing device, or mobile computing devices running the Android operating system by Google Inc. Here, also HTML-5 is used in some implementations to provide the video. Other examples are televisions that have network interfaces and browsing capabilities. Additionally, many modern game consoles and some televisions also have the ability to run third-party software and provide web browsing capabilities that can be deployed to access the video from the system 100 over a network connection.

An application server 124 manages these requests or commands from the client devices 128, 130, 132, 134. It allows the users at the client devices to select whether they want to watch or access previously recorded content, i.e., a television program, set up a future recording of a broadcast of a television program, or watch a live broadcast television program. In some examples, the system 100 also enables users to access and/or record radio (audio-only) broadcasts. A business management system 118 is used to verify the users' accounts or help users set up a new account if they do not yet have one.

If the users request to watch previously recorded content, then the application server 124 sends the users' command to the streaming server 120. The streaming server 120 retrieves each users' individual copy of the previously recorded content from a broadcast file store (or file store) 126 and streams content data to the client devices 128, 130, 132, 134.

If the users request to set up future recordings of television programs, the application server 124 communicates with an antenna optimization and control system 116 to configure broadcast capture resources to capture and record the desired broadcast content by reserving antenna and encoding resources for the time and date of the future recording.

On the other hand, if the users request to watch a live broadcast, then the application server 124 and antenna optimization and control system 116 locate available antenna resources ready for immediate use. In current embodiments, all content, initiated by the user, is temporarily stored in the streaming server 120 and/or file store 126 prior to playback and streaming to the users whether for live streaming or future recording. This allows users to pause and replay parts of the television program and also have the program stored to be watched again. The antenna optimization and control system 116 maintains the assignment of this antenna to the user throughout any scheduled television program or continuous usage until such time as the user releases the antenna by closing the session or by the expiration of a predetermined time period as maintained by a timer implemented in the control system 116. An alternative implementation would have each antenna assigned to a particular user for the user's sole usage.

The broadcast capture portion of the system 100 includes an array 102 of antenna elements 102-1, 102-2 . . . 102-n. Each of these elements 102-1, 102-2 . . . 102-n is a separate antenna that is capable of capturing different terrestrial television content broadcasts and, through a digitization and encoding pipeline, separately process those broadcasts for storage and/or live streaming to the user devices. This configuration allows the simultaneous recording of over the air broadcasts from different broadcasting entities for each of the users. In the illustrated example, only one array of antenna elements is shown. In a typical implementation, however, multiple arrays are used, and in some examples, the arrays are organized into groups.

In more detail, the antenna optimization and control 116 determines which antenna elements 102-1 to 102-n within the antenna array 102 are available and optimized to receive the particular over the air broadcasts requested by the users. In some examples, this is accomplished by comparing RSSI (received signal strength indicator) values of different antenna elements. RSSI is a measurement of the power of a received or incoming radio frequency signal. Thus, the higher the RSSI value, the stronger the received signal.

After locating an optimized antenna element, the antenna optimize and control 116 allocates the antenna element to the user. The antenna optimization and control system 116 then signals the corresponding RF tuner 104-1 to 104-n to tune the allocated antenna element to receive the broadcast.

The received broadcasts from each of the antenna elements 102-1 to 102-n and their associated tuners 104-1 to 104-n are transmitted in parallel to an encoding system 103 as content transmissions. The encoding system 103 is comprised of encoding components that create parallel processing pipelines for each allocated antenna 102-1 to 102-n and tuner 104-1 to 104-n pair.

The encoding system demodulates and decodes the separate content transmissions from the antennas 102 and tuners 104 into MPEG-2 format using an array of ATSC (Advanced Television Systems Committee) decoders 106-1-106-n assigned to each of the processing pipelines. In a situation where each broadcast carrier signal contains multiple content transmissions, the antenna optimization and control system 116 signals the ATSC decoders (or demodulators) 106-1 to 106-n to select the desired program contained on the carrier signal. The content transmissions are decoded to MPEG-2 content transmission data because it is currently a standard format for the coding of moving pictures and associated audio information.

The content transmission data from the ATSC decoders 106-1 to 106-n is sent to a multiplexer 108. The content transmissions are then transmitted across an antenna transport interconnect to a demultiplexer switch 110. In a preferred embodiment, the antenna transport interconnect is an nx10GbE optical data transport layer.

In the current implementation, the antenna array 102, tuners 104-1 to 104-n, demodulators 106-1 to 106-n, and multiplexer 108 are located outside in an enclosure such as on the roof of a building or on an antenna tower. These components can be made to be relatively robust against temperature cycling that would be associated with such an installation. Also, these components are relatively inexpensive so that loss can be minimized in the event of damage sustained as the result of electrical discharge or vandalism.

The multiplexer 108, demultiplexer switch 110, and nx10GbE data transport are used to transmit the captured content transmission data to the remainder of the system that is preferably located in a secure location such as a ground-level but or the basement of the building, which also usually has a better control over the ambient environment.

The content transmission data of each of the antenna processing pipelines are then transcoded into a format that is more efficient for storage and streaming. In the current implementation, the transcode to the MPEG-4 (also known as H.264) format is effected by an array of transcoders 112-1, 112-2 . . . 112-n. Typically, multiple trancoding threads run on a single signal processing core, FPGA or ASIC type device.

The content transmission data are transcoded to MPEG-4 format to reduce the bitrates and the sizes of the data footprints. As a consequence, the conversion of the content transmission data to MPEG-4 encoding will reduce the picture quality or resolution of the content, but this reduction is generally not enough to be noticeable for the average user on a typical reduced resolution video display device. The reduced size of the content transmissions will make the content transmissions easier to store, transfer, and stream to the user devices. Similarly, audio is transcoded to AAC in the current embodiment, which is known to be highly efficient.

In one embodiment, the transcoded content transmission data are sent to packetizers and indexers 114-1, 114-2 . . . 114-n of the pipelines, which packetize the data. In the current embodiment, the packet protocol is UDP (user datagram protocol), which is a stateless, streaming protocol. UDP is a simple transmission model that provides less reliable service because datagrams may arrive out of order, duplicated, and go missing. Generally, this protocol is preferred for time-sensitive transmission, such as streaming files, where missing or duplicated packets can be dropped and there is no need to wait for delayed packets.

Also, in this process, time index information is added to the content transmissions. The content data are then transferred to the broadcast file store 126 for storage to the file system, which is used to store and/or buffer the content transmissions as content data for the various television programs being captured by the users.

In an alternative embodiment, the content data are streamed as HTTP Live Streaming or HTTP Dynamic Streaming. These are streaming protocols that are dependent upon the client device. HTTP Live Streaming is a HTTP-based media streaming communications protocol implemented by Apple Inc. as part of its QuickTime X and iPhone software systems. The stream is divided into a sequence of HTTP-based file downloads.

FIG. 2 is a block diagram showing one implementation of the antenna array 102 that includes different subarrays 802, 804. Generally, different subarrays capture terrestrial broadcasts from different broadcasting entities 806, 808.

Each of the subarrays 802, 804 is comprised of hundreds or thousands of antennas elements 102-1 to 102-n, and tuners 104-1 . . . 104-n. Generally, the antenna elements and tuners are mounted on printed circuit boards (PCB) and located within an enclosure or housing. Depending on their orientation and location, different antenna subarrays 802, 804 are optimized to receive broadcasts from different broadcasting entities 806, 808. This is because different television networks use different broadcasting entities or antennas 806, 808 for generating the radio frequency transmissions or carrier waves that encode the over the air broadcasts. Typically, the broadcasting antennas 806, 808 are often physically located in different places distributed around most metropolitan areas, on one hand. It is preferable that the antenna array 102 be physically small and have a high antenna density, on the other hand. This leads to the desire to make the antenna elements 102 physically small. Small antennas, however, typically are low power gain. Therefore, in one embodiment, the system 100 includes two or more antenna subarrays 802, 804 that are physically separated from each other so that they can be collocated with the transmission towers of different broadcasting entities 806, 808, from which the over the air broadcast transmissions are to be detected by the system 100.

In operation, the antenna optimization and control system 116 determines which antenna subarray 806, 808 is optimized to receive a desired content broadcast from the broadcasting entity 806, 808 based on a variety of factors including the location of the broadcasting entity, the location of the antennas subarray, and/or the signal strength received by the subarray. The antenna optimization and control system 116 then assigns an available antenna element 102 within the best-located subarray 802, 804 to receive the desired broadcast content.

Further, in some embodiments, the antenna subarrays 802, 804 are further preferably organized into groups according to frequency range: VHF and UHF, since the physical requirements of the antenna elements are different depending on the frequencies that they are able to receive.

With reference to FIGS. 1 and 2, the arrangement of the antenna elements 102 in each of the subarrays 802, 804 is similar to a phased array antenna in some ways. However, in a phased array antenna, the antenna elements are typically driven from a common source or connected to a common detection channel to produce a controlled radiation emission or detection pattern. In contrast, in the current system, the different antenna elements 102-1 to 102-n have separately addressable tuners 104-1 to 104-n and are controlled and optimized to receive different over the air broadcasts at different frequencies and possibly from different broadcasting entities 806, 808, simultaneously. Additionally, the different antennas 102-1 to 102-n and tuners 104-1 to 104-n are able to simultaneously capture multiple copies of the same broadcast or content transmission; this occurs when different users want to record or watch the same television program. As a result, each user has a unique copy of broadcast content data, which is generated from a different antenna and which is then separately stored in the broadcast file store 126. Moreover, should one of these antenna elements be physically or electrically compromised and therefore disabled, that particular user's stream will cease to be generated and received.

FIG. 3 is diagram of a card cage structure 151 housing antenna array PCBs (or PCB antenna arrays) 152-1, 152-2 . . . 152-n.

In the preferred embodiment, multiple PCB antenna arrays 152-1 to 152-n are installed in card cage structure or housing 151 and the antenna elements 102-1, 102-2 . . . 102-n are orientated horizontally. The card cage 151 is typically an enclosure or structure that provides mechanical support and protection of the PCB antenna arrays 152-1 to 152-n within its enclosure. The card cages 151 are generally designed to allow PCBs to be easily installed and/or removed. Additionally, multiple card cages are often housed in rack mounted chassis (not shown) to further increase the density of antenna elements in the location where the card cages are placed.

The side, top, bottom and any front walls 150 of the card cage structure 151 are fabricated from a non-conductive material or with as few conductive materials as possible to minimize Faraday shielding. The front wall (shown removed) of the card cage 151 provides an access panel to enable installation and removal of the PCB antenna arrays 152-1, 152-2 . . . 152-n.

The rear wall or section includes the data transport interfaces, such as an nx10GbaseT optical data transport connector to transfer the data to the transcoders, and provides mechanical support for the antenna arrays 152-1 to 152-n. In a typical implementation, the card cage 151 houses up to 8 or up to 32 PCB antenna arrays. In alternative embodiments, however, greater or fewer PCBs antenna arrays are housed within the card cages.

The PCBs antenna arrays 152-1 to 152-n are generally spaced about an inch (2.5 centimeters) apart within the enclosure. This distance enables a relatively high density for the PCBs antenna arrays 152-1 to 152-n, while reducing unwanted interference between antenna elements to acceptable levels. Additionally, the arrangement of the multiple PCB antenna arrays within the enclosure creates a three dimensional array of antennas to maximize the number of antenna elements in the location where the card cages are placed.

The antenna elements 102-1 to 102-n within the card cage 151 are orientated horizontally to create a horizontally polarized half omni-directional antenna array.

If the signal transmitted from the broadcasters has a vertical polarization, which occurs in some locals, then orientation of the antenna elements 102-1 to 102-n should be changed.

The PCB antenna arrays 152-1, 152-2 . . . 152-n are fabricated from a dielectric insulator material. The components are mounted to a PCB and are connected via conductive pathways (or tracks) on the PCB. In one embodiment, the PCBs are approximately 25 inches wide by 21 inches long, or about 0.6 meters (m) by 0.5 m.

FIG. 4 is a top view diagram illustrating a two dimensional array of antenna elements 102-1, 102-2 . . . 102-n (shown as an array of squares) in the PCB antenna arrays 152.

In a preferred embodiment, antenna elements 102-1, 102-2 . . . 102-n are mounted to both sides of the PCB 152 in a two dimensional array. Note that in FIG. 4, only the antenna elements in the right-most column are labeled. Each antenna element 102-1, 102-2 . . . 102-n is an electrically balanced symmetric loop, in one implementation. The antenna elements are tightly spaced, much less than 0.1 wavelength (lambda) apart on the antenna section of the PCB. In a preferred embodiment, the antenna elements 102-1, 102-2 . . . 102-n are low power gain antennas. Low gain antennas are preferred because they have a wide radiation pattern that does not need to be aimed precisely at a transmitting entity and is generally required for highly integrated arrays at these frequencies/wavelengths.

Further, the antenna elements may be preferably arranged on different PCBs according to frequency range because the physical characteristics of the antenna elements are different depending on the frequencies that they are designed to receive. Thus, the PCB 152 includes VHF or UHF antenna elements. In an alternate embodiment, antenna elements may be multiply resonant, and may be on the same PCB.

The antenna elements 102-1, 102-2 . . . 102-n are connected with solder to the electronics section 154 of the PCB antenna array 152. A ground plane 810 is provided in the electronics section 154. In a preferred embodiment, the conductive metal ground plane begins at this electronics section and extends in both directions.

Carrying the signal from each antenna element 102-1 to 102-n to the radio frequency tuner 104-1 to 104-n and demodulator 106-1 to 106-n are balanced transmission lines 812-1, 812-2 . . . 812-n. In one embodiment, each individual antenna element 102-1, 102-2 . . . 102-n is connected to a corresponding radio frequency tuner 104-1, 104-2 . . . 104-n and demodulator 106-1, 106-2 . . . 106-n. Thus, there will be the same number of antennas, radio frequency tuners, and demodulators.

In an alternative embodiment, there are more antenna elements than tuners such that antennas may be assigned to tuners as needed. This enables the system to provision either stream without prejudice or delay. It further helps to provide an economical method so that a user may be guaranteed their particular antenna throughout the duration of their agreed time usage period whether or not they are actively using the antenna. This can be considered a pooled tuner or pooled receiver. In another alternative embodiment, the system utilizes pooled demodulation resources. Typically, there are between three to four times more antenna elements than demodulators. That ratio, however, will vary based on the total number of users with accounts, the average number of users accessing the system simultaneously, and the number of users accessing the system during peak hours.

The balanced transmission lines 812 include two uniform conductors of the same material type that have equal impedance along their length. Balanced transmission lines are used to carry the signal because the interfering noise from the surrounding environment is induced into both lines equally and with resulting electrical currents in the same direction. Then, by measuring the difference of the signals at the receiving end of the transmission lines, the original signal is recovered.

A balanced to unbalanced transformer or balun (See FIG. 5, reference numeral 914) is used to convert the balanced signal from the antenna elements 102-1, 102-2 . . . 102-n to an unbalanced signal. The unbalanced to balanced conversion enables the signal to be further processed by the unbalanced components such as the radio frequency tuners 104-1, 104-2 . . . 104-n.

In operation, the radio frequency tuners 104-1, 104-2 . . . 104-n tune the antenna elements 102-1 to 102-n to receive the desired broadcast content transmission. The demodulators 106-1, 106-2 . . . 106-n demodulate and decode the separate content transmissions from the antenna elements 102-1, 102-2 . . . 102-n into MPEG-2 format using ATSC demodulator/decoders. MPEG-2 is a standard format for a coding of moving pictures and associated audio information.

In the typical implementation, the card cage structures 151 are located in an enclosure that is installed on the roof of a building or on an antenna tower. The multiplexer circuit 108 and data transport controller 160 are used to carry signals to the PCB optical interface connector 162. The PCB output connector 162 carries the signals to remainder of the system 100 that is typically located in a more secure location such as a ground-level but or the basement of the building.

In another implementation, each PCB antenna arrays 152 includes 80 dual loop antennas 102-1 to 102-n (for a total of 160 loops). In alternative embodiments, the PCBs are able to hold more than 80 antennas such as 320 antennas (for a total of 640 loops) or 640 antenna elements (for a total of 1,280 loops). Each antenna is approximately 0.5 inches in height, 0.5 inches wide, or about 1 centimeter (cm) by 1 cm, and has a thickness of approximately 0.030 inches, or about a 1 millimeter (mm). The antenna elements are currently organized in a staggered two dimensional matrix that is approximately 3.3 wide by 18 inches long, or about 8 cm by 50 cm. Generally, the matrix should be less than 1 m by 1 m and have more than 10 antenna elements, and preferably more than 50 elements. The antenna elements also have a horizontal spacing of approximately 0.28 inches (about 0.7 cm) and a vertical spacing of approximately 0.62 inches (1.5 cm). Additionally, the PCB antenna arrays 152 are on a raster of 1.09 inches (2.8 cm). In an alternative embodiment, the PCB antenna arrays 152 are on a raster of 0.75 inches (2 cm) or less.

In still other implementations, the PCB antenna arrays 152 and their antenna elements are different sizes. In one example, the area of the PCB antenna arrays 152 is reduced by about ¼ (possibly ⅛) of the present area or less. In terms of the antenna elements 102, when configured as a square loop, the 3 sided length is preferably less than 1.7 inches (4.3 cm), for a total length of all 4 sides being 2.3 inches, (5.8 cm). In the case of miniaturization of the antenna area to ¼ of the present size, then the aspect of the loop would also need to be changed to maintain the same pitch on the PCB and shrink the height by ¼. Likewise, the spacing between the antenna elements and raster would also be reduced depending on the size of the PCB. Still other embodiments implement geometric reductions of the area to ¼ to ⅛.

FIG. 5 is a partial side view of a PCB antenna array 152 that shows an example of the symmetry of balanced loop antenna element 102 and balanced transmission lines 812, 813 on the double sided PCB antenna array 152.

In a typical implementation, a tap point for each antenna element 102 is located at some distance according to the desired driving impedance. Then, the two component antenna element 102 is driven Pi (π) radians out of phase at the operating frequency. The frequency of the antenna element is controlled by changing the voltage across the pair of varactor diodes 904, 906 joining the loop ends of the two loop antennas element 102. A varactor diode is a diode with a controllable capacitance that is adjusted by altering the voltage applied at its terminals. In an alternative embodiment, the frequency of each antenna element is controlled with a fixed capacitor and varicap diode.

Also shown in FIG. 5 are transmission lines 812, 813 that are connected to the balun 914. The balun 914 converts the balanced signal to an unbalanced signal enabling the signal to be processed by components in the electronics section 154 of the PCB antenna array 152.

FIG. 6A is a cross-sectional view of section A-A in FIG. 5. FIG. 6A shows the symmetrical nature of the balanced transmission lines 812, 813 on opposing sides of the PCB antenna array 152. Typically, the transmission lines 812, 813 are conductive copper pathways that are formed on the top and bottom of the PCB board. In a preferred embodiment, one set of transmission lines 812 carry the positive radio frequency signal and the symmetrical set of transmission lines 813 on the opposite of the PCB carry the negative radio frequency signal.

FIG. 6B is a cross-section view of section B-B of FIG. 5 showing the symmetrical nature of the loop antenna element 102 and tuning varactor diodes 904, 906.

FIG. 7 is flow diagram illustrating the steps for users to access the system 100 and view live over the air content, set up a future recording, or view previously recorded content. In the first step 302, an input screen is presented to the users via their client devices 128, 130, 132, 134. In the next step 304, the users are required to supply their user names and passwords to access individual user accounts, if not already logged-on. If the user names and passwords are incorrect, then the users are presented with an error screen in step 306.

Once logged-on, the business management system 118 determines if the users are approved for billing in step 308. If the users are not approved for the billing, then the application server 124 presents the users with a sales pitch screen in step 310, when the system is deployed with a paid-subscriber model. If the users are approved by billing, then the application server 124 gets geographical location information in step 312 for the users.

Each users' geographical location can be determined and confirmed using a number of different methods. In one example, each user's location will be determined by the user's Internet Protocol (IP) address. In other examples, it is entered by the user when they create an account or is determined when the user provides a zip code. Likewise, information from mobile phone towers being accessed by the user or by latitude and longitude coordinates from a global positioning system receiver within the user devices are also used in other examples. This geographical location information enables the web application server 124 to present each user with information based upon the user's actual or home market location.

The geographical information is required because different content is broadcast at different times between different television markets and some content is only available to users in specific geographic markets. For example, some content available in New York City is not available to users in Los Angeles. Moreover, in some implementations, the system enforces localization such that the users can only access content transmissions from their home market or that would otherwise be available to the users if they had their own antenna that they maintained on their house or other domicile.

In the next step 314, the users are able to select what content type they want to access from their individual user account. Each user is provided with their own individual account through which they access any live content streaming or set up future recordings to be associated with the user's account. Likewise, playback of previously recorded content is done from the user's account and only content associated with the user's account is accessible by the user.

If the user selects content that the user previously recorded, then the user is presented with the pre-recorded screen in step 316. If the user selects future recording, then the user is presented with the future recording screen to set up a future recording in step 320. If the user selects live streaming content, then the user is presented with the live stream screen in step 318.

FIG. 8 is flow diagram illustrating the steps for users to watch their previously recorded content from the streaming server 120. The users begin at the pre-recording screen that is served to the user devices from the application web server 124 in step 316. This is often a web page. In other examples, a propriety interface is used between the application web server 124 and an application program running on the user devices.

In the first step 402, the users are presented with a list of their previously recorded content data. Users are only able to see the content data, e.g., a television program, that they instructed the system 100 to record. In some examples, the application server 124 suggests over the air content that the users might be interested in watching or recording. Nevertheless, the users must initiate the requests to record and save the broadcast content.

In the next step 404, the user selects previously recorded content data to add to a playlist. The streaming server 120 locates the user's unique copy of the previously recorded content data in step 406 in the broadcast file store 126. In the next step 408, the streaming server 120 determines the resolution that will be presented to the user based on the user's device. In alternative embodiments, users are able to select the resolution regardless of device. In another alternative embodiment, the client device automatically selects the highest resolution that the communications path can reliably provide.

In the next step 410, the streaming server 120 streams the content data or recorded television program in the playlist to the user's device until the user's playlist is complete.

FIG. 9 is flow diagram illustrating the steps for users to schedule future recordings of an over the air broadcasts.

The users begin at the future recording screen that is served to the user device from the application web server 124 in step 320.

In the first step 204, the application server 124 determines and displays available local content to the user based on the geographical location information (obtained in step 312 of FIG. 7) to enable localization. Typically, the user is presented with a list of available television networks, current broadcasts, and times and dates of future broadcasts.

In the next step 206, the user's request for content is sent to the application server 124. The application server 124 then schedules resources to be available at the time of the content broadcast or notifies the user that resources are currently unavailable in step 208. Then the application server 124 directs the antenna optimize and control 116 to allocate the best available antenna element at the time and date of the desired content broadcast in step 209. In the case where a user's antenna is assigned permanently this step is skipped, however. In the next step 210, the antenna optimize and control 116 associates the antenna and receiver, and demodulates the broadcast content into MPEG-2 format.

The system 100 enables each user to separately schedule future recordings of broadcast content. Additionally, each user is allocated an individual antenna to receive that broadcast content. Further, and generally, the application server 124 schedules recordings based on each users' command so that there is always the same number of recordings as scheduled requests. This applies even when two users request recordings of the exact same content transmission; the system captures and stores separate content transmissions for each user individually so that each user has their own unique copy in the file store 126 that was generated from a separate antenna element.

In the next step 212, the content transmission is transmitted through multiplexor and demultiplexor to an assigned transcoders that is part of receiver. In the next step 214, the assigned transcoder 112 generates both a high rate/resolution and low rate/resolution video stream of transcoded content transmission data. In a current embodiment, the transcoded content data are encoded into the MPEG-4 format and the audio is transcoded into AAC (advanced audio coding) format.

The transcoded content data are then transferred to the broadcast file store 126 in step 215 along with time index information at both the high rate/resolution and low rate/resolution video content data.

In an alternative embodiment, the transcoder 112 generates a tri-rate output. Generally, the tri-rate includes high, medium, and low rate/resolution outputs of the transcoded content data. Still other embodiments could have greater or fewer output rates. The different output rates/resolutions enable the system 100 to provide different quality video streams based on factors such as the network capabilities, the user device, and user selection, to list a few examples.

FIG. 10 is a flow diagram illustrating the steps for users to watch over the air content on user devices in real time, contemporaneously with the broadcast of the content transmission of the desired television programs.

The users begin at the live stream screen 318 that is served to the user devices from the application web server 124. Based on the user's geographical location, a list of available over the air broadcasts of television programs is provided in step 602. Additionally, the broadcast time and date are also displayed to the users. The users are able to select content to view and the users' requests for content are sent to the application server 124 in step 604. The application server 124 requests assignment of an antenna element from the antenna optimize and controller 116 in step 612 of each of the users.

If the antenna and/or tuner are not available, then the application server 124 returns a busy screen to the users in step 614. If antennas are available, then the antenna optimization and controller 116 selects the best available antenna to receive the over the air broadcasts in step 615 for each of the users' requests. The determination of which antennas to use is based on multiple factors. For example, the location of the broadcasting entity, the location of the antenna elements, the orientation of the antennas, and the signal strength are all factors used to determine which antenna element will be used. In the case where the user's antenna is permanently assigned, and there are insufficient resources to support the request, the system returns a busy screen.

After an antenna is selected and the over the air broadcast is received, it is processed by the encoder system 103. The content transmission is decoded into MPEG-2 format by the decoder in step 616. In the next step 618, the content transmission data are transmitted through the multiplexer 108 and demultiplexor 110 to the transcoders 112. Here, the assigned transcoders 112 generate both a hi-rate and low rate MPEG-4, in one example, and the audio is transcoded into AAC (advanced audio coding) format. The assigned indexer 114 stores the transcoded broadcast content data into the broadcast file store 126 along with time index information.

Next, the streaming server 120 buffers and streams the broadcast content data from the broadcast file store 126 to the users' mobile devices for the duration of the broadcast in step 622.

In one embodiment, antenna elements that are currently not used are allocated to receive content broadcasts or television programs that the system anticipates that users will want to watch in the near future. The feeds from these allocated antennas are not sent to any users. The generated content data are simply discarded by the system as they are generated or are written into a circular buffer in the file store that is continuously overwritten. However, when a user desires to watch one of these programs, the content data that are generated by the feed from the antenna elements are allocated to that user and streamed to that user.

The advantage of this approach is that when the user selects to watch a new television program or changes to a different television program in a live streaming situation, the system does not need to wait for the encoding pipeline to fill. Instead, the content data that were previously discarded are now simply sent to this user. This provides a smoother and quicker transition when switching between channels, e.g., channel surfing.

FIG. 11 illustrates how transcoded content data are stored for each individual user in the broadcast file store 126.

In the illustrated example, each record includes information that identifies the user and the transcoded content data. For example, a user identification field uniquely identifies each user and/or their individual user account. Every content transmission that is captured from over the air broadcasts and converted to content data is associated with the user that requested it. The content identification field identifies the title (or name) of the content transmission. Generally, the content name is the title of the program, show or movie that is being recorded. An antenna identification field identifies the specific antenna element that was assigned and then used to capture the user requested over the air broadcast. A network identification field specifies the broadcasting entity that broadcast the content transmission that was recorded. The video file field contains the transcoded content data or typically a pointer to the location of this data. The pointer specifies the storage location(s) of the transcoded and stored as high, medium and low quality broadcast content data. A file identification field further indentifies the unique episode, movie, or news broadcast. Lastly, a time and date identification field records the time and date of the over the air broadcast.

By way of an example, User 1 and User 2 both have unique USER ID's and both have their individual copies of a television program. Likewise, both users have their own copy of the broadcast content data and the television program even though both users requested a recording of the same television program, at the same time, on the same network. User 1 is only able to view their content data stored to their USER ID and User 2 is only able to view their copy of the content data stored to their USER ID. Likewise, the specific antenna element that was assigned to each user is also recorded.

Additionally, the streaming server 120 is able to generate reports based on the stored broadcast content data and the identification fields. The reports include statistics such as usage by individual, usage by groups, total the numbers of users, number of active users, number of scheduled recordings, peak system usage, and total usage of the entire system, to list a few examples.

FIG. 12 shows an alternative embodiment of the system 100 for providing network access to antenna elements of an array.

In this example, the system 100 further includes a selector switch 105 that is controlled by the antenna optimize and control system 116 to selectively connect the antennas 102 and tuners 104 to available antenna processing pipelines.

In the system 100, the resources for demodulating and transcoding are pooled and shared by the antennas elements. This configuration enables the system to provide services to larger numbers of users with less hardware. Additionally, the density of antenna elements can be increased, while power consumption is reduced by remoting demodulation and transcoding hardware that consume larger amounts of power and by having less resources idling in standby.

Pooling resources (or oversubscription) is an acceptable practice because users generally do not access the system at the same time. Typically, most users are not currently accessing the system: some users are viewing live streaming content, some are setting up recordings of future broadcast, and others are playing back previously recorded content. Thus, the system does not need to be provisioned to handle all users accessing the system simultaneously.

To enable the system to utilize pooled resources, the selector switch 105 or switching system is provided. The antenna optimize and control 116 controls the selector switch 105 to enable the over the air broadcast received by the antenna elements 102 to be demodulated and encoded by resources from the pool of resources. Once the demodulation and encoding resources are no longer required, they are returned to pool of resources.

Because there are more antennas than demodulating and encoding resources, the antenna optimize and control 116 must ensure that demodulation resources are available before allocating an antenna to a user or allowing the user to access their dedicated antenna. Therefore, when a user makes a request for content, the antenna optimize and control 116 determines if demodulation and encoding resources and antenna elements are available on the same antenna array PCB or whether demodulation and encoding resources are available on the same PCB and the user's dedicated antenna.

If antenna resources are not available on the same antenna array PCB, then the antenna optimization and control system 116 searches for resources on other antenna array PCBs. If no resources are available, then the antenna optimize and control 116 informs the application server 124 that the user's request cannot be completed at this time. Likewise, the application server returns a message to the user's device that the system is currently busy and requests cannot be completed at this time.

On the other hand, if demodulation and encoding resources are available, then the user is assigned an antenna element and the received broadcasts are transmitted to the available resources through a selector switch 105 (or switch matrix).

In an alternative embodiment, tuners 104-1 to 104-n are also pooled. In this configuration, available tuners are assigned to antenna elements 102 as needed. The selector switch 105 is also used to switch the radio frequency output of the antenna and to select both the tuner and demodulator to be directly coupled together.

In a preferred embodiment, the signal inputs and outputs of the selector switch 105 are a low intermediate frequency signal, a high intermediate frequency signal, a baseband signal, or a digital representation of any of the foregoing.

While an equal number of antennas, tuners, demodulators, transcoders, and indexers are depicted, in a typical implementation, antenna elements outnumber the encoding resources of the processing pipeline approximately 3-4 to 1, in one embodiment. This configuration provides additional service to many additional users without concomitant increases in hardware resources.

In first mode of operation of the embodiments shown in FIGS. 1 and 12, the antenna assignments are temporary assignments that last only as long as the users are actively using the system 100 to watch single television program, for example. The system 100 assigns users antenna elements each time there is a user request to view or record an over the air broadcast. Thus, every time a user requests a different over the air broadcast, the system 100 typically assigns the user a new antenna element.

In second mode of operation, the antenna assignments are permanent assignments, e.g., dedicated to particular users. For example, antennas are leased to users for the duration of those users' accounts. In other examples, the antennas are actually sold to users.

If the system 100 is configured to permanently assign antennas to users, then each user will always use the same antenna element to receive over the air broadcasts.

The embodiment of FIG. 12 is preferred for the second mode of operation because fewer demodulators 105 and possibly tuners 104 are required in the system 100. When a user is not accessing their system, only their antenna element 102 is not fully utilized. The switch 106 enables demodulators to be reassigned to other active antenna elements.

If the system 100 is configured to permanently assign antenna elements and also utilizes pooled demodulation and encoding resources, there is the possibility that demodulation resources will not be available on the same antenna array PCB at certain times. In this scenario, the antenna optimize and controller 116 searches for available demodulators on other antenna array PCBs and controls the selector switch 105 to enable the antenna elements located on one PCB to connect to the demodulation and encoding resources located on other PCBs.

FIG. 13 is a flowchart that shows how the application web server 124 and antenna optimize and controller 116 allocate demodulation and encoding resources for a user when resources are pooled.

In the first step 702, the antenna optimize and control 116 receives a request from the application server 124. Typically, the requests are generated by users from their client devices 128, 130, 132, 134. After receiving the request from the application server 124, the antenna optimize and control 116 searches for available resources.

In the next step 708, the antenna optimize and control 116 determines if demodulation and encoding resources are available from the pool of resources on the same antenna array PCB as the antenna element that is assigned to the user making the request. If resources are available, then the antenna optimize and control 116 allocates the resources for the user in step 716. Generally, this is accomplished by configuring the selector switch 105.

If no resources are available, then the antenna optimize and control 116 searches for other resources on the other antenna array PCBs that are available to receive the requested content in step 710. If the antenna optimize and control 116 is not able to locate any available antennas and/or demodulation and encoding resources on any other PCBs, then the antenna optimize and control 116 returns an busy message in step 714 to the application server. Likewise, the application server 124 will then return a busy message to the user requesting the content.

If antennas and resources are located on another antenna array PCB, then the antenna optimizes and control 116 configures the selector switch 105 in step 715 and allocates the available demodulator for the user in step 716.

These steps would also be performed if the user requested to set up a future recording. The steps, however, would not be performed in real-time; rather they would be performed at the time when the desired content was being broadcast from the broadcasting entity. Additionally, the content would not be delivered to a user device. Rather, the content would be stored in the broadcast file store 126 to be accessed by the user at a later time.

While this invention has been particularly shown and described with references to preferred embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the scope of the invention encompassed by the appended claims. 

What is claimed is:
 1. A system for processing antenna feeds, the system comprising: antenna elements for receiving over the air broadcasts of content; antenna processing pipelines, each of the pipelines for demodulating the antenna feeds from the antenna elements to produce content data for the over the air broadcasts of content received by the antenna elements; a switching system for selectively connecting each of the antenna elements to one of the antenna processing pipelines; an antenna controller that controls the switching system to enable generation of the content data to fulfill user requests for the content; a streaming server for streaming the content data to via the internet and an application server for receiving the user requests to watch content; wherein commands are sent to the antenna controller and the streaming server to generate and stream the content data to the user devices of the users in response to the user requests.
 2. The system as claimed in claim 1, wherein each of the pipelines for demodulating the antenna feeds include a demodulator selected from a group of demodulators to demodulate the antenna feeds from the antenna elements.
 3. The system as claimed in claim 2, wherein the antenna controller searches for alternate demodulators if none of the demodulators from the group of demodulators is available.
 4. The system as claimed in claim 3, wherein if the antenna controller locates alternate demodulators, then the antenna controller configures the switching system to connect the antenna elements to the alternate demodulators to create additional antenna processing pipelines.
 5. The system as claimed in claim 1, wherein the antenna elements outnumber the antenna processing pipelines.
 6. The system as claimed in claim 1, wherein the antenna elements are temporarily assigned to users.
 7. The system as claimed in claim 1, wherein the antenna elements are dedicated to users for the duration of their user account.
 8. The system as claimed in claim 1, wherein the pipelines for demodulating the antenna feeds from the antenna elements include radio frequency tuners, each radio frequency tuner being individually tunable to enable each the antenna elements to receive different over the broadcasts of content.
 9. The system as claimed in claim 8, wherein the radio frequency tuners are directly connected to the antenna elements.
 10. The system as claimed in claim 8, wherein the radio frequency tuners are selectively connected to the antenna elements by the switching system.
 11. A method for processing antenna feeds, the method comprising: receiving user requests to watch content from users; sending commands to an antenna controller for antenna elements and to a streaming server to stream content data of the content; receiving over the air broadcasts of the content with the antenna elements; providing antenna processing pipelines, for demodulating the antenna feeds from the antenna elements to produce the content data for the over the air broadcasts of the content received by the antenna elements; connecting each of the antenna elements to one of the antenna processing pipelines with a switching system; and the streaming sever streaming the content data to user devices of the users via the internet.
 12. A method as claimed in claim 11, further comprising configuring the switching system to generate the content data to fulfill user requests for content.
 13. The method as claimed in claim 11, wherein each of the pipelines for demodulating the antenna feeds include a demodulator, and the method further comprises selecting from a group of demodulators to demodulate the antenna feeds from the antenna elements.
 14. The method as claimed in claim 13, further comprising searching for alternate demodulators if none of the demodulators from the group of demodulators is available.
 15. The method as claimed in claim 14, further comprising configuring the switching system to connect the antenna elements to the alternate demodulators to create additional antenna processing pipelines.
 16. The method as claimed in claim 11, further comprising temporarily assigning the antenna elements to users.
 17. The method as claimed in claim 11, further comprising dedicating the antenna elements to particular users for the duration of their user account.
 18. The method as claimed in claim 11, wherein the pipelines for demodulating the antenna feeds from the antenna elements include radio frequency tuners, each radio frequency tuner being individually tunable to enable each the antenna elements to receive different over the broadcasts of content.
 19. The method as claimed in claim 18, wherein the radio frequency tuners are directly connected to the antenna elements.
 20. The method as claimed in claim 18, wherein the radio frequency tuners are selectively connected to the antenna elements by the switching system.
 21. A method for assigning a processing pipeline to an antenna element, the method comprising: dedicating an antenna element to a user, the antenna element for receiving over the air broadcasts of content; receiving a user request to watch content from a user; sending commands to an antenna controller for the antenna element and to a streaming server to stream content data of the content; searching for an available processing pipeline to demodulate the over the air broadcasts of the content in response to the user request for content; upon locating a processing pipeline, assigning the processing pipeline to the user's dedicated antenna element to connect the processing pipeline to the user's permanently assigned antenna element and the streaming server streaming the content to a user device of the user via the internet.
 22. The method as claimed in claim 21, wherein the processing pipeline is connected to the to the user's permanently assigned antenna element with a switching system.
 23. The method as claimed in claim 21, wherein the over the air content is received with the user's permanently assigned antenna.
 24. The method as claimed in claim 21, wherein the assigned processing pipeline demodulates the over the air content as a content transmission. 